/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 *																 *
 *	r2GL - r2 Graphs Library									 *
 *																 *
 *	File:		Node.h											 *
 *	Authors:	Rafael Kikuchi ( shinjikik@gmail.com )			 *
 *				Rafael Romeiro ( rafaelromeiro@gmail.com )		 *
 *	Date:		08/09/2008										 *
 *	License:	CC-GNU LGPL										 *
 *				http://creativecommons.org/licenses/LGPL/2.1/	 *
 *	Version:	0.1.0											 *
 *																 *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#ifndef NODE_H
#define NODE_H

namespace r2GL
{

class Node
{
public:
	Node (void);
	Node (int initialID);
	~Node (void);

	void SetDegree (int newDegree);
	void SetOutDegree (int newOutDegree);
	void SetID (int newID);
	void SetMark (int newMark);
	void SetMark2 (int newMark2);
	void SetParent (int newParent);
	void SetDistance (int newDistance);
	int GetDegree (void);
	int GetOutDegree (void);
	int GetID (void);
	int GetMark (void);
	int GetMark2 (void);
	int GetParent (void);
	int GetDistance (void);

	bool operator< (const Node &node);

private:
	int id, degree, outDegree, mark, mark2, parent, distance;

};

} //namespace

#endif